#ifndef HPLC_QINFINE_COLLECOTR_PROTOCOL_H
#define HPLC_QINFINE_COLLECOTR_PROTOCOL_H

#include "common/hplcqinfineprotocolcommon.h"
#include "common/hplcqinfinesendcommonsystempacket.h"
#include "hplcqinfinecollectorsendpacket.h"
#include "hplcqinfinecollectorsendsystempacket.h"
#include "modulehplccollectordefine.h"

namespace hplc
{
namespace qinfine
{

class HplcQinfineCollectorProtocolData;
class HplcQinfineCollectorProtocol : public HplcQinfineProtocolCommon
{
    Q_OBJECT
public:
    HplcQinfineCollectorProtocol(CollectorParam &param, QObject *parent = nullptr);
    virtual ~HplcQinfineCollectorProtocol();

    virtual bool setProtocolCmd(int id, QVariant &var) override;
    virtual bool getProtocolCmd(int id, QVariant &var) override;

    HplcQinfineCollectorSendPacket *getCollectorSender();
    HplcQinfineCollectorSendSystemPacket *getCollectorSystemSender();

protected:
    virtual void setModel(quint8 model) override;

    HplcQinfineCollectorProtocol(HplcQinfineCollectorProtocolData &data, CollectorParam &param, QObject *parent = nullptr);

private:
    hplc::CollectorParam			*m_param = nullptr;
};

} // qinfine
} // hplc

#endif // HPLC_QINFINE_COLLECOTR_PROTOCOL_H
